c++ vector<char> 问题

来源:百度知道 编辑:UC知道 时间:2024/05/27 00:35:27
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include<string>
#include<vector>
using namespace std;
int main()
{
char a[5]={};
vector<char> v;
ifstream in("d:\\momo.txt");
string line;
while(a[5]=getchar()){
if(a[5]=='0')
break;
v.push_back(a[5]);
}
for(int j=0;j<size(a);j++){
cout<<j<<":"<<v[j]<<endl;
}

}
错误在哪里呢?我找了半天还是有一个警告
根据最后一个给的答案 虽然添加了上去没有错误和警告了,但是运行之后告诉我超出范围了。。。。这是怎么回事啊!急急急。有没有高手帮忙真正的运行一下看看啊,改改。。。小弟谢谢了啊。

很清楚了
for(size_t j = 0 ; j < sizeof(a) ; j++)

----------------------------------------
不了解你的程序时是干嘛

while(a[5]=getchar()) // 这里越界了 ,只有a[0] 到 a[4]

既然是每次读取一个char,为啥要弄个数组呢

#include "stdafx.h"
#include <iostream>
#include <fstream>
#include<string>
#include<vector>
using namespace std;
int main()
{
char a;
vector<char> v;

while(a=getchar())
{
if(a=='0')
break;
v.push_back(a);
}
for(size_t j=0;j<v.size();j++)

{
cout<<j<<":"<<v[j]<<endl;
}

return 0;
}

warning C4018: “<”: 有符号/无符号不匹配
指的是 for(int j=0;j<size(a);j++)中 j是有符号的 int,size 是无符号的 int,它们比较起来是不匹配的

你不懂看警告上写什么吗??

估计你在main函数尾加个return 0;就行了。。
=================================================
warning C4018: “<”的意思